#!/bin/bash

# 检查是否有未提交的本地修改
if ! git diff-index --quiet HEAD --; then
    echo -e "\033[36m有未提交的本地修改，正在处理...\033[0m"
    
    # 添加所有修改
    git add .
    
    # 提示用户输入提交信息
    read -p "请输入提交信息: " commit_msg
    
    # 确保用户输入了提交信息
    while [ -z "$commit_msg" ]; do
        echo -e "\033[31m提交信息不能为空！\033[0m"
        read -p "请重新输入提交信息: " commit_msg
    done
    
    # 提交修改
    git commit -m "$commit_msg"
else
    echo -e "\033[36m没有未提交的本地修改，直接拉取远程代码...\033[0m"
fi

# 拉取远程最新代码，使用rebase方式
echo -e "\033[36m正在拉取远程最新代码...\033[0m"
if ! git pull --rebase origin main; then
    echo -e "\033[31m拉取代码时发生冲突，请请手动解决冲突后执行 git rebase --continue\033[0m"
    exit 1
fi

# 推送本地修改到远程仓库
echo -e "\033[36m正在推送代码到远程仓库...\033[0m"
if git push origin main; then
    echo -e "\033[32m代码推送成功！\033[0m"
else
    echo -e "\033[31m代码推送失败，请检查网络或权限\033[0m"
    exit 1
fi
    